/**
 * Defines classes and interfaces for monitoring data and collecting statistics.
 * <p>
 * To monitor data, you must define an event to be monitored. An event
 * is specified by the {@link lumis.portal.monitor.IEvent} interface. 
 * You may organize your events by assigning them to a category.
 * </p>
 * <p>
 * Data collected are stored in a statistical form. Groups of data collected
 * are consolidated and generate a single statistics for each measure collected.
 * Each one of these groups is called <code>EventData</code>. Whether create a new
 * <code>EventData</code> or use an existing one is decided based on the following 
 * event's attributes:
 * <ul>
 * <li>Duration: This property is used to specify the interval of time in which 
 * the data collected for an event may consolidated together.
 * <p> 
 * For example, if the duration is one day (86400000 milliseconds), 
 * all data collected in the same day may be consolidated together, while data
 * collected in a different day is stored separately; 
 * if the duration is one hour (3600000 milliseconds), only data collected in 
 * the same hour will be consolidated together.
 * </p>
 * </li>
 * <li>Aggregation types: When defining an event, you may assign any number of 
 * aggregation types to it. Only data with the same values for all aggregation 
 * types may be consolidated together. If any value of the aggregation types 
 * differ, a different <code>EventData</code> is used.
 * <p>
 * Example: A standard aggregation type is channel path. By applying this aggregation
 * type, each <code>EventData</code> will store data only for a single channel path. 
 * This is useful if one wants to be able to view statistics only for some 
 * specified channels or for each channel separately.
 * </p>
 * </li>
 * </ul>
 * When you collect a data for an event you must specify what measure that data 
 * belongs to. Each <code>EventData</code> stores statistics for each measure 
 * type separately.
 * Example: For the event of file download, the measures of duration and
 * bytes sent could be collected. Each one will have their own statistics stored.
 * </p>
 * <p>
 * The entry point for the monitoring framework API is the 
 * {@link lumis.portal.monitor.IMonitorManager}. It may be obtained by calling
 * {@link lumis.portal.manager.ManagerFactory#getMonitorManager()}.
 * To collect data, obtain an {@link lumis.portal.monitor.IMonitor} and use
 * its available operations. The current {@link lumis.portal.monitor.IMonitorContext} 
 * state may affect how data is collected. Refer to their javadoc for details.
 * </p>
 * <p>
 * For information about accessing the collected data, see 
 * <a href="impl/doc-files/access_monitored_data.html">this document</a>.
 *
 * @since 4.1.0
 * @version $Revision: 9583 $ $Date: 2008-07-17 15:09:54 -0300 (Thu, 17 Jul 2008) $
 */
package lumis.portal.monitor;